The present invention relates to the field of information processing. More specifically the present invention relates to the electronic distribution and display of maps.
People at times are presented with an identifier of an unfamiliar location. For example, when looking up an auto repair business in the phone book, the user will have available to them the address of the repair shop. Assuming the person is unaware of the location of the shop, the person would desire to have some help in determining how to navigate to the shop. In general, people would like to have a graphical representation of the location with respect to its surroundings, e.g. a map. Frequently, with the ever-increasing capability and connectivity of the Personal Computer (PC), the location of interest is provided, in some manner, via the PC. Examples of how the locations of interest are provided via the PC include; email from a friend containing the address of a social event, a website containing the address of the local salesroom for a company, and the longitude and latitude of a popular hiking destination via a popular outdoor magazine website.
There are currently several websites that offer the capability for a user to obtain a graphical representation, i.e. a map, of a street address. In response to providing the address, the user will be provided a map that shows the area surrounding the provided street address. On this provided map, the user will be able to perform various operations. One of these operations is zooming in and out on a map. Zooming is the ability to see more or less of an area surrounding the requested location. This usually happens at the expense of resolution since one is looking at a greater area in the same amount of view space. Another ability is the ability to xe2x80x9cpanxe2x80x9d in any direction that the user chooses. In other words, to have the map stay at a given level of resolution but have the map xe2x80x9cmovexe2x80x9d the area covered by the current view space in a particular direction.
The most notable deficiency with the current map serving products is that the time required to have a map provided to a user can be lengthy. This is because of the method by which the current map servers provide the maps. First, the address is provided to the server by the user from the client machine. Second, the server will generate, in real time, a map containing the address provided to the server from the client. Finally, when the generation of the map on the server is complete, the map image is sent to the client from the server. Each subsequently required map, i.e. as a result of the user zooming or panning, is also generated and delivered in this real-time manner. The use of one of these prior art products demonstrates the negative effects associated with the dynamic generating of these maps. These negative effects are the major motivations for the present invention. The reason that dynamically generating a map is an issue is two-fold. First, the processing power required to generate real-time graphics is extensive. Second, the use of real-time graphics for each map implies generation of a new map with every request associated with an existing map.
Since the prior art process involves the real-time generation of the graphical images, the server will be spending time generating these images real-time. Map generation on the server is a relatively time consuming process and can make the overall processing time of getting the map to the user quite lengthy. This is especially true as the connection speeds with which most users access the Internet increases. As the user access speed increases, the time that it takes to transfer the bit map to the user become less of a factor thus making the map generation delay even more noticeable.
There is another consequence of the real time generation of graphical images. As previously mentioned it requires processing power to produce real time graphical images. To provide the ability to service many clients with real-time maps would require significant processing power. Therefore a site wishing to provide maps to a large number of clients will need to either have access to a great deal of processing horsepower or have a large delay for users while the requests for maps are queued. Neither requiring the server owner to provide more processing power nor having a large delay for users waiting for maps is a desirable trade-off.
The second reason that dynamically generated maps are an issue is that every map is custom. Specifically the deficiency has to do with the inability to manipulate a map once it has been provided to the client. Frequently, the user may want to see a different area relative to the location of interest (e.g. to pan or move the current display). The current solutions current solutions always contact the server. The server generates another map in real-time and this map is sent to the requesting user. This generation of a new map every time that a user requests a new view is frustrating to the user.
Thus a more effective approach in providing and delivering maps to the user is desired.
The present invention provides a method and apparatus for distributing and displaying maps to a client. A client provides an identifier of a requested location to a map server. The map server has available to it a plurality of preexisting map tiles collectively covering the area supported by the particular map server. For example, if a map server is to provide information about the area covered by a particular country, it is pre-provisioned with the map tiles that cover the country. The supported area will be divided into a plurality of zones. Each zone will be represented by one map tile. The server will determine which map tile in the plurality of preexisting map tiles contains a representation of the requested location. The server will send at least this map tile to the client.
In an embodiment of the present invention, the location requested is provided in the form of a street address. In an alternative embodiment, the location is requested in the form of longitude and latitude. For either case, the server will send, in addition to the map tile, an indication of, or the logic to generate such indication, where on the map the location of the requested street address or the longitude and latitude would reside. The client will then add a marking on the map, prior to displaying it to the user, which indicates the location on the map of the requested longitude and latitude. The indicator is rendered by the client along with the xe2x80x9cvisible portionxe2x80x9d of the map tiles.
When a supported area is divided into zones, as in the case with the present invention, there will, in most cases, be zones that are immediately adjacent to the central zone. The central zone is the zone which contains the requested location. In an embodiment of the present invention, a set of preexisting map tiles of the zones immediately adjacent to the central zone will also be sent to the client. The combination of all of the zones immediately adjacent to the central zone combined with the central zone itself will be termed the first inner area. In another embodiment of the current invention, a second set of preexisting map tiles representing the zones immediately adjacent to the first inner area are also sent to the client in addition to the first set of preexisting maps corresponding to the zones immediately adjacent to the central zone. The combination of the first inner area with the zones immediately adjacent to the first inner area will be termed the second inner area.
In one embodiment, each of the pre-existing map tiles also has a corresponding miniaturized version, and the miniaturized versions are sent to the client along with the corresponding xe2x80x9cfull sizedxe2x80x9d versions of the map tiles. For the xe2x80x9cinitialxe2x80x9d request, certain xe2x80x9cmini-mapxe2x80x9d processing logic are also sent. The xe2x80x9cmin-mapxe2x80x9d processing logic causes a mini-map of the xe2x80x9cgreater areaxe2x80x9d to be formed and displayed on the client, using the miniaturized versions of the map tiles. Additionally, the xe2x80x9cmini-mapxe2x80x9d processing logic further causes a xe2x80x9cvisibility windowxe2x80x9d demarcation corresponding to the visible portion(s) of the xe2x80x9cfull sizedxe2x80x9d map tiles to be displayed over the xe2x80x9cmini-mapxe2x80x9d. The xe2x80x9cmini-mapxe2x80x9d processing logic further facilitates user movement of the xe2x80x9cvisibility windowxe2x80x9d demarcation within the xe2x80x9cmini-mapxe2x80x9d. In response, the xe2x80x9cmini-mapxe2x80x9d processing logics causes the displayed map to be refreshed with the appropriate adjacent zones, as if the user has communicated the desired panning movement via conventional cursor movements on the xe2x80x9cfull sizedxe2x80x9d display. As a result, usability of user panning is further improved.
In one embodiment, each of a number of the map tiles also has point of interests, and each of these map tiles has associated data describing and facilitating the display of the points of interest. The associated data are also provided to the client along with the map tiles. Additionally, for the xe2x80x9cinitialxe2x80x9d request, certain xe2x80x9cpoint-of-interestxe2x80x9d processing logic is also provided to the client. In one embodiment, the xe2x80x9cpoint-of-interestxe2x80x9d processing logic provides a drop down list for a user to select to have points of interest of a selected type to be displayed. In response to one such selection, the xe2x80x9cpoint-of-interestxe2x80x9d processing logic causes graphical representations of the points of interest of the selected type to be displayed at the appropriate locations of the displayed map. Furthermore, in response to the placement of a cursor within a predetermined distance from a displayed point-of-interest, the xe2x80x9cpoint-of-interestxe2x80x9d processing logic causes multi-media data associated with the particular point-of-interest to be rendered.